﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BusinessLogicLayer;
using DataAccessLayer;
using System.Globalization;
using System.Drawing;

namespace ChamCong.NhanVien
{
    public partial class XinNghiPhep : BasePage
    {
        ThamSoBLL ts = new ThamSoBLL();
        NhanVienBLL NVBLL = new NhanVienBLL();
        XinNghiPhepBLL XNP = new XinNghiPhepBLL();
        NgayNghiBLL nnBLL = new NgayNghiBLL();
        PHEP dxp = new PHEP();

        public static float SoNgayNghi, SoNgayThucNghi;
        public static string strLoaiBuoiNghi ;
        public static int _MaPB, _ttd, _MaPhep;
        public static int _MaNV;
        public static double iSoNgayNghiCoLuong;
        public static DateTime TuNgay, DenNgay, NgayNghi;
        protected void Page_Load(object sender, EventArgs e)
        {
            cbxTinhNgay.Attributes.Add("onclick", this.Page.ClientScript.GetPostBackEventReference(this.btnTextBoxEventHandler, ""));
            _MaNV = Convert.ToInt32(Session["MaNV"]);
            _ttd = Convert.ToInt32(Request.QueryString["ttd"]);
            _MaPB = NVBLL.TimPhongBan(_MaNV);
            _MaPhep = Convert.ToInt32(Request.QueryString["MaPhep"]);
            try
            {
                if (!IsPostBack)
                {
                    if (Request.QueryString["ttd"] == null)
                    {
                        List<NHANVIEN> ThongTinNhanVien = new List<NHANVIEN>();
                        ThongTinNhanVien = NVBLL.TimKiem(_MaNV);
                        //lblTenDangNhap.Text = ThongTinNhanVien[0].TenDangNhap;
                        lblTenNV.Text = ThongTinNhanVien[0].HoTen;
                        lblMaNV.Text = ThongTinNhanVien[0].MaNV.ToString();
                        lblSoDienThoai.Text = ThongTinNhanVien[0].SoDT.Trim();
                        lblPhongBan.Text = NVBLL.LayPBTuNV(_MaNV).ToString();
                        
                        if (XNP.LayThongTinPhepThuongNienConLai(_MaNV, DateTime.Now) == null)
                        {
                            lblNgayNghiThuongNien2.Text = ThongTinNhanVien[0].SoNgayPhepThuongNien.ToString();
                            lblNgayNghiThuongNien.Text = ThongTinNhanVien[0].SoNgayPhepThuongNien.ToString();
                        }
                        else
                        {
                            lblNgayNghiThuongNien2.Text = XNP.LayThongTinPhepThuongNienConLai(_MaNV, DateTime.Now).SoNgayNghiConLai.ToString();
                            lblNgayNghiThuongNien.Text = XNP.LayThongTinPhepThuongNienConLai(_MaNV, DateTime.Now).SoNgayNghiConLai.ToString();
                        }
                        pnlXinNghiPhep.Visible = true;
                    }
                    else
                    {
                        bindPersonalGridView(_MaNV, _ttd);
                        if (_MaPhep > 0)
                        {
                            bindDetailView(_MaPhep, _ttd);
                        }

                    }
                }
            }
            catch (Exception ex)
            {
                sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", ex.Message);
            }
            

        }

        protected void dgvPhepDaXin_rowdatabound(object sender, GridViewRowEventArgs e)
        {
            if (DataBinder.Eval(e.Row.DataItem, "TrangThaiDoc") == null)
            { }
            else
            {
                int ttd = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "TrangThaiDoc").ToString());
                if (ttd == 0)
                {
                    e.Row.Attributes.Add("style", "font-weight:bold;");
                }

            }
        }

        public void bindPersonalGridView(int _manv, int _ttd)
        {
            if (XNP.DSPhepCaNhan(_MaNV, _ttd).Count > 0)
            {
                dgvDSPhepDaXin.Visible = true;
                dgvDSPhepDaXin.DataSource = XNP.DSPhepCaNhan(_MaNV, _ttd);
                dgvDSPhepDaXin.DataBind();
            }
            else
            {
                sbcMsgBox2.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Warning, "Thông báo", "Hiện thời không có dữ liệu!");
            }

        }
        public void bindDetailView(int _mp, int _tt)
        {
            if (XNP.ThongTinDXP(_mp, _MaPB, _MaNV).Count > 0)
            {
                if (_tt >= 0 & _tt < 3)
                {
                    dtvChiTietDXP.Visible = true;
                    dtvChiTietDXP.DataSource = XNP.ThongTinDXP(_mp, _MaPB, _MaNV);
                    dtvChiTietDXP.DataBind();
                    tbxChuThich.Visible = true;
                    tbxChuThich.Text = XNP.ThongTinDXP(_mp, _MaPB, _MaNV).Single().ChuThich;
                    lblChuThich.Visible = true;

                    if (XNP.ThongTinDXP(_mp, _MaPB, _MaNV).Single().TrangThaiDoc == 0)
                    {
                        PHEP P = new PHEP();
                        P.MaPhep = _mp;
                        P.TrangThaiDoc = 1;
                        XNP.Sua(P);

                        bindPersonalGridView(_MaNV, _tt);
                    }
                    
                }
            }
            else
            {
                sbcMsgBox2.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Warning, "Thông báo","Không tìm thấy dữ liệu!");
            }
        }
        protected void btnTextBoxEventHandler_Click(object sender, EventArgs e)
        {
            try
            {
                
                    //Chieu mai, 10/11, code ham TinhSoNgayNghi1Ngay, TinhSoNgayNghiNhieuNgay
                    if (RadioButtonList2.SelectedItem.Value == "2")
                    {
                        //DateTime TuNgay, DenNgay = new DateTime();
                        TuNgay = DateTime.ParseExact(tbxTuNgay.Text, "dd-MM-yyyy", null);

                        DenNgay = DateTime.ParseExact(tbxDenNgay.Text, "dd-MM-yyyy", null);

                        TimeSpan SoBuoi = (DenNgay - TuNgay);

                        if (ktNgayNghi2(TuNgay, DenNgay) > 0)
                        {
                            //TinhSoBuoiNhieuNgay(TuNgay, DenNgay);
                            CalcMultiDays(TuNgay, DenNgay);
                        }
                        else
                        {
                            lblThongTin.Text = "Ngày nghỉ đầu tiên không được rơi vào Ngày lễ, Chủ nhật hoặc thứ 7 (Nghỉ cả ngày!)";
                            tbxTuNgay.BackColor = Color.Pink;
                        }

                        
                    }
                    else if (RadioButtonList2.SelectedItem.Value == "1")
                    {
                        //DateTime 
                        NgayNghi = DateTime.ParseExact(tbxNgayNghi.Text, "dd-MM-yyyy", null);//nghi mot ngay

                        CalcSingleDay(NgayNghi);
                    }
                    //Check ngay hien tai va ngay nhap vao textbox
                    //check ngay le, viet ham tinh ngay le va nghi bu

            }
            catch (Exception ex)
            {

                lblThongTin.Text = "Vui lòng nhập chính xác thông tin ngày nghỉ. ";// +ex.Message;
            }

        }

        public int ktNgayNghi2(DateTime TuNgay, DateTime DenNgay)
        {
            if (TuNgay.DayOfWeek == DayOfWeek.Sunday || Convert.ToInt32(ts.LayGiaTri("TTLVT7")) == 3 || nnBLL.KiemTraTonTai(TuNgay) == true)
            {
                return 0;
            }
            else
            {
                return 1;
            }
        }
        public List<DateTime> GetAllDatesAndInitializeTickets(DateTime startingDate, DateTime endingDate)
        {
            List<DateTime> allDates = new List<DateTime>();

            for (DateTime date = startingDate; date <= endingDate; date = date.AddDays(1))
            {
                allDates.Add(date);
            }
            for (int i = 0; i < allDates.Count; i++)
            {
                if (allDates[i].DayOfWeek == DayOfWeek.Sunday || nnBLL.KiemTraTonTai(allDates[i]) == true || Convert.ToInt32(ts.LayGiaTri("TTLVT7")) == 3) //Kiemtratontai la ngày lễ, 3 là thứ 7 k đi làm
                {
                    allDates.Remove(allDates[i]);
                    i--;
                }
            }
            return allDates;
        }
        
        public float CalcMultiDays(DateTime TuNgay, DateTime DenNgay)
        {
            List<DateTime> allDates = GetAllDatesAndInitializeTickets(TuNgay, DenNgay);
            //Hiệu số ngày giữa 2 ngày là SoNgayNghi, đã trừ chủ nhật, ngày lễ hoặc thứ 7 k đi làm
            strLoaiBuoiNghi = ddlTuNgay.SelectedValue + ddlDenNgay.SelectedValue;
            SoNgayNghi = allDates.Count;
            for (int i = 0; i < allDates.Count; i++)
            {
                if (allDates[i].DayOfWeek == DayOfWeek.Saturday)
                {
                    int iTTLVT7 = Convert.ToInt32(ts.LayGiaTri("TTLVT7"));
                    if (iTTLVT7 == 1)//nếu thứ 7 làm nửa ngày, trừ nó đi 0.5f. 
                    {
                        SoNgayNghi = SoNgayNghi - 0.5f;
                        //Nếu thứ 7 làm nửa ngày (sáng), mà bắt đầu nghỉ từ chiều thứ 7 (1x) thì trừ tiếp
                        if (allDates[i] == TuNgay && Convert.ToInt32(strLoaiBuoiNghi) > 9 && Convert.ToInt32(strLoaiBuoiNghi) < 20)
                        {
                            SoNgayNghi = SoNgayNghi - 0.5f;    
                        }
                        else
                        {
                            //SoNgayNghi = SoNgayNghi - 0.5f;
                        }
                        
                    }
                }
                else 
                {
                    //nếu không phải thứ 7, nếu ngày đầu nghỉ từ chiều thì trừ nửa
                    if (allDates[i] == TuNgay && Convert.ToInt32(strLoaiBuoiNghi) > 9 && Convert.ToInt32(strLoaiBuoiNghi) < 20)
                    {
                        SoNgayNghi = SoNgayNghi - 0.5f;
                    }
                    //Đến ngày - sáng.
                    if (allDates[i] == DenNgay && strLoaiBuoiNghi.Substring(strLoaiBuoiNghi.Length-1, 1) == "0") 
                    {
                        SoNgayNghi = SoNgayNghi - 0.5f;
                    }
                }
            }
            lblThongTin.Text = "Nghỉ " + SoNgayNghi + " ngày.";
            return SoNgayNghi;
            
        }
        public float CalcSingleDay(DateTime NgayNghi)
        {
            strLoaiBuoiNghi = ddlNgay.SelectedValue;
            SoNgayNghi = 1; //Nghỉ một ngày thì SoNgayNghi = 1, kiểm tra thứ 7, chủ nhật, ngày lễ sau.
            //Kiểm tra thứ 7
            
            if (nnBLL.KiemTraTonTai(NgayNghi) || NgayNghi.DayOfWeek == DayOfWeek.Sunday || Convert.ToInt32(ts.LayGiaTri("TTLVT7")) == 3)
            {
                SoNgayNghi = 0;
            }
            else
            {
                if (NgayNghi.DayOfWeek == DayOfWeek.Saturday)
                {
                    int iTTLVT7 = Convert.ToInt32(ts.LayGiaTri("TTLVT7"));
                    if (iTTLVT7 == 1)//nếu thứ 7 làm nửa ngày, trừ nó đi 0.5f. 
                    {
                        SoNgayNghi = SoNgayNghi - 0.5f;
                        //Nếu thứ 7 làm nửa ngày (sáng), mà bắt đầu nghỉ từ chiều thứ 7 (2) thì trừ tiếp
                        if (Convert.ToInt32(strLoaiBuoiNghi) == 2)
                        {
                            SoNgayNghi = SoNgayNghi - 0.5f;
                        }
                        else
                        {
                            //SoNgayNghi = SoNgayNghi - 0.5f;
                        }

                    }
                }
                else
                {
                    //nếu không phải thứ 7, nếu ngày đầu nghỉ từ chiều thì trừ nửa
                    switch (Convert.ToInt32(strLoaiBuoiNghi))
	                {
                        case 3:
                            SoNgayNghi = 1;
                            break;
                        case 1: //sáng
                            SoNgayNghi = SoNgayNghi - 0.5f;
                            break;
                        case 2:
                            SoNgayNghi = SoNgayNghi - 0.5f;
                            break;
	                }
                    //SoNgayNghi = 1;
                }
            }

            lblThongTin.Text = "Bạn nghỉ " + SoNgayNghi + " ngày.";
            return SoNgayNghi;
        }
        
        protected void btnNopDon_Click(object sender, EventArgs e)
        {
            try
            {
                int swLoaiNghi = Convert.ToInt32(RadioButtonList2.SelectedValue);
                if (RadioButtonList2.SelectedValue == "1") //Nghỉ một ngày
                {
                    NghiMotNgay();
                    CapNhatPhepThuongNien(iSoNgayNghiCoLuong);
                }
                else //nghỉ nhiều ngày
                {
                    DateTime dtmTuNgay = DateTime.ParseExact(tbxTuNgay.Text, "dd-MM-yyyy", null);
                    //tbxTuNgay.Text = dtmTuNgay.ToString("yyyy-MM-dd");

                    DateTime dtmDenNgay = DateTime.ParseExact(tbxDenNgay.Text, "dd-MM-yyyy", null);
                    //tbxDenNgay.Text = DenNgay.ToString("yyyy-MM-dd");

                    if (ktNgayNghi2(dtmTuNgay, dtmDenNgay) > 0)
                    {
                        NghiNhieuNgay();
                        CapNhatPhepThuongNien(iSoNgayNghiCoLuong);
                    }
                    else
                    {
                        Response.Write("<script>alert('Ngày nghỉ đầu tiên không thể rơi vào Ngày lễ, Chủ nhật! hoặc thứ 7 (Không đi làm!)');history.go(-1);</script>");
                        tbxTuNgay.BackColor = Color.Pink;
                    }
                }
                
            }
            catch (Exception ex)
            {
                lblThongTin.Text = "Vui lòng kiểm tra lại thông tin ngày nghỉ! \n" + " (" + ex.Message + ")";
            }
        }
        public void NghiMotNgay()
        {
            dxp.MaNV = Convert.ToInt32(lblMaNV.Text);
            dxp.MaLoaiPhep = Convert.ToInt32(ddlLoaiNghiPhep.SelectedValue);
            dxp.LyDo = tbxLyDo.Text;
            //Nghỉ 1 ngày
            strLoaiBuoiNghi = ddlNgay.SelectedValue;
            NgayNghi = DateTime.ParseExact(tbxNgayNghi.Text, "dd-MM-yyyy", null);
            //DateTime now = Convert.ToDateTime();
            if (NgayNghi.AddHours(12) < DateTime.Now)
            {
                Response.Write("<script>alert('Ngày nghỉ phải lớn hơn hoặc bằng ngày hiện tại.');</script>");

            }
            else
            {
                SoNgayThucNghi = CalcSingleDay(NgayNghi);
                if (RadioButtonList1.SelectedValue == "0") //Nghỉ không lương
                {
                    //TinhSoBuoi1Ngay(NgayNghi);
                    dxp.TuNgay = NgayNghi;
                    dxp.DenNgay = NgayNghi;
                    dxp.LoaiBuoi = strLoaiBuoiNghi;
                    //SoNgayThucNghi = CalcSingleDay(NgayNghi);
                    if (SoNgayThucNghi > 0)
                    {
                        dxp.SoNgayNghi = SoNgayThucNghi;
                        dxp.SoNgayNghiCoLuong = 0;
                        dxp.TrangThaiDuyet = 0;

                        dxp.NgayTao = DateTime.Now;

                        XNP.TaoDonXinPhep(dxp);
                        //base.Response.Redirect("XinNghiPhep.aspx?ttd=0");
                        Response.Write("<script>alert('Gửi thành công.');window.location.href='XinNghiPhep.aspx?ttd=0';</script>");
                        //sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Gửi thành công!");
                    }
                    else
                    {
                        Response.Write("<script>alert('Số ngày nghỉ phải lớn hơn 0.');</script>");
                    }
                }
                else //Nghỉ có lương
                {
                    
                    if ((tbxNgayNghiCoLuong.Text != null) && (Convert.ToDouble(tbxNgayNghiCoLuong.Text) <= SoNgayThucNghi))
                    {
                        dxp.TuNgay = NgayNghi;
                        dxp.DenNgay = NgayNghi;
                        dxp.LoaiBuoi = strLoaiBuoiNghi;
                        if (SoNgayThucNghi > 0)
                        {
                            dxp.SoNgayNghi = SoNgayThucNghi;
                            dxp.SoNgayNghiCoLuong = Convert.ToDouble(tbxNgayNghiCoLuong.Text);
                            dxp.TrangThaiDuyet = 0;

                            dxp.NgayTao = DateTime.Now;

                            XNP.TaoDonXinPhep(dxp);
                            iSoNgayNghiCoLuong = Convert.ToDouble(tbxNgayNghiCoLuong.Text);
                            Response.Write("<script>alert('Gửi thành công.');window.location.href='XinNghiPhep.aspx?ttd=0';</script>");
                            //sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Gửi thành công!");
                        }
                        else
                        {
                            Response.Write("<script>alert('Số ngày nghỉ phải lớn hơn 0.');</script>");
                        }

                    }
                    else
                    {
                        Response.Write("<script>alert('Số ngày nghỉ có lương phải nhỏ hơn hoặc bằng tổng số ngày/buổi nghỉ.');</script>");
                        tbxNgayNghiCoLuong.BackColor = Color.Pink;
                    }
                }

            }            
        }
        public void NghiNhieuNgay()
        {
            dxp.MaNV = Convert.ToInt32(lblMaNV.Text);
            dxp.MaLoaiPhep = Convert.ToInt32(ddlLoaiNghiPhep.SelectedValue);
            dxp.LyDo = tbxLyDo.Text;

            //DateTime TuNgay, DenNgay = new DateTime();
            TuNgay = DateTime.ParseExact(tbxTuNgay.Text, "dd-MM-yyyy", null);
            tbxTuNgay.Text = TuNgay.ToString("yyyy-MM-dd");

            DenNgay = DateTime.ParseExact(tbxDenNgay.Text, "dd-MM-yyyy", null);
            tbxDenNgay.Text = DenNgay.ToString("yyyy-MM-dd");
            SoNgayThucNghi = CalcMultiDays(TuNgay, DenNgay);
            if (DenNgay > TuNgay)
            {
                TimeSpan SoBuoi = (DenNgay - TuNgay);

                if (RadioButtonList1.SelectedValue == "0")
                {
                    dxp.TuNgay = TuNgay;
                    dxp.DenNgay = DenNgay;
                    strLoaiBuoiNghi = ddlTuNgay.SelectedValue + ddlDenNgay.SelectedValue;
                    dxp.LoaiBuoi = strLoaiBuoiNghi;

                    if (SoNgayThucNghi > 0)
                    {
                        dxp.SoNgayNghi = SoNgayThucNghi;
                        dxp.LyDo = tbxLyDo.Text;
                        dxp.NgayTao = DateTime.Now;
                        dxp.TrangThaiDuyet = 0;
                        dxp.SoNgayNghiCoLuong = 0;
                        XNP.TaoDonXinPhep(dxp);

                        //sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Gửi đơn xin phép thành công!");
                    }
                    else
                    {
                        Response.Write("<script>alert('Số ngày nghỉ phải lớn hơn 0.');</script>");
                    }

                }
                else
                {
                    dxp.SoNgayNghiCoLuong = Convert.ToDouble(tbxNgayNghiCoLuong.Text);
                    dxp.TuNgay = TuNgay;
                    dxp.DenNgay = DenNgay;
                    strLoaiBuoiNghi = ddlTuNgay.SelectedValue + ddlDenNgay.SelectedValue;
                    dxp.LoaiBuoi = strLoaiBuoiNghi;
                    if (SoNgayThucNghi > 0)
                    {
                        dxp.SoNgayNghi = SoNgayThucNghi;
                        dxp.LyDo = tbxLyDo.Text;
                        dxp.NgayTao = DateTime.Now;
                        dxp.TrangThaiDuyet = 0;
                        if ((tbxNgayNghiCoLuong.Text != "") && (Convert.ToDouble(tbxNgayNghiCoLuong.Text) <= SoNgayThucNghi))
                        {
                            XNP.TaoDonXinPhep(dxp);
                            iSoNgayNghiCoLuong = Convert.ToDouble(tbxNgayNghiCoLuong.Text);
                            sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Gửi đơn xin phép thành công!");
                        }
                        else
                        {
                            Response.Write("<script>alert('Số ngày nghỉ có lương phải nhỏ hơn hoặc bằng tổng số ngày nghỉ.');</script>");
                            tbxNgayNghiCoLuong.BackColor = Color.Pink;
                        }
                    }
                    else
                    {
                        Response.Write("<script>alert('Số ngày nghỉ phải lớn hơn 0.');</script>");
                    }

                }
            }
            else
            {
                Response.Write("<script>alert('Ngày kết thúc phải lớn hơn hoặc bằng ngày bắt đầu nghỉ');history.go(-1);</script>");
            }        
        }
        protected void RadioButtonList2_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (RadioButtonList2.SelectedItem.Value == "2")
            {
                pnlNghiMotNgay.Visible = false;
                pnlNghiNhieuNgay.Visible = true;
                lblThongTin.Text = "";
                
            }
            else
            {
                pnlNghiNhieuNgay.Visible = false;
                pnlNghiMotNgay.Visible = true;
                lblThongTin.Text = "";
                
            }
        }
        protected string AutoConvert(object datetimenow)
        {
            if (datetimenow.ToString().Trim() == "12/31/9999 11:59:59 PM")
            {
                return "---";
            }
            else
            {
                return string.Format("{0:dd/MM/yyyy}", Convert.ToDateTime(datetimenow));
            }
        }
        public void CapNhatPhepThuongNien(double _SoNgayNghiCoLuong)
        {
            double dPhepThuongNien;
            if (XNP.LayThongTinPhepThuongNienConLai(_MaNV, DateTime.Now) != null)
	        {
                dPhepThuongNien = XNP.LayThongTinPhepThuongNienConLai(_MaNV, DateTime.Now).SoNgayNghiConLai ?? 0;
	        }
            else
            {
                List<NHANVIEN> ThongTinNhanVien = new List<NHANVIEN>();
                ThongTinNhanVien = NVBLL.TimKiem(_MaNV);
                CT_PHEPTHUONGNIEN ptn = new CT_PHEPTHUONGNIEN();
                ptn.Nam = DateTime.Now.Year;
                ptn.MaNV = _MaNV;
                ptn.SoNgayNghiConLai = ThongTinNhanVien[0].SoNgayPhepThuongNien;
                XNP.ThemPhepThuongNien(ptn);
                dPhepThuongNien = (double)ThongTinNhanVien[0].SoNgayPhepThuongNien;
            }
            double dSoNgayNghiConLai = dPhepThuongNien - _SoNgayNghiCoLuong;

            if (XNP.LayThongTinPhepThuongNienConLai(_MaNV, DateTime.Now) != null)
            {
                CT_PHEPTHUONGNIEN ptn = new CT_PHEPTHUONGNIEN();
                ptn.Nam = DateTime.Now.Year;
                ptn.MaNV = _MaNV;
                ptn.SoNgayNghiConLai = dSoNgayNghiConLai;
                XNP.CapNhatPhepThuongNien(ptn);
            }


        }
        public void Clear()
        { 
            
        }
        public string ktDuyet(object ttd)
        {
            if (ttd.ToString() == "1")
                return "Đã duyệt";
            else if (ttd.ToString() == "0")
                return "Chờ duyệt";
            return "Không duyệt";
        }
        public string LayLoaiDS()
        {
            string ds;
            if (Request.QueryString["ttd"] == null)
            {
                ds = "oizp";
            }
            else
            {
                ds = Request.QueryString["ttd"].ToString();
            }

            return ds;
        }
        public string ktLoaiPhep(object lp)
        {
            int _MaPhep = Convert.ToInt32(lp);
            LOAIPHEP P = XNP.LayLoaiPhep(_MaPhep);
            return P.TenLoaiPhep;
        }
        public string ktTenNV(object tnv)
        {
            int _MaNV = Convert.ToInt32(tnv);

            NHANVIEN NV = NVBLL.LayNhanVien(_MaNV);
            return NV.HoTen;
        }
        public string ktThongTinBuoi(object b)
        {
            string _strBuoi = b.ToString().Trim();
            string _strThongTin = string.Empty;
            if (_strBuoi.Length == 1)
            {
                int _iBuoi = int.Parse(_strBuoi);
                
                switch (_iBuoi)
                {
                    case 3:
                        _strThongTin = "Nghỉ cả ngày";
                        break;
                    case 1:
                        _strThongTin = "Nghỉ buổi sáng";
                        break;
                    case 2:
                        _strThongTin = "Nghỉ buổi chiều";
                        break;
                }
            }
            else
            {
                string _strTuNgayRutGon = _strBuoi.Substring(_strBuoi.Length-2,1);
                string _strDenNgayRutGon = _strBuoi.Substring(_strBuoi.Length - 1, 1);
                Label lblTuNgay = dtvChiTietDXP.FindControl("lblTuNgay") as Label;
                string strTuNgay = lblTuNgay.Text;
                Label lblDenNgay = dtvChiTietDXP.FindControl("lblDenNgay") as Label;
                string strDenNgay = lblTuNgay.Text;
                switch (_strTuNgayRutGon)
                {
                    case "3":
                        _strThongTin = "Từ ngày " + strTuNgay;
                        break;
                    case "0":
                        _strThongTin = "Từ sáng " + strTuNgay;// + " đến " + strDenNgay;
                        break;
                    case "1":
                        _strThongTin = "Từ chiều " + strTuNgay;// + " đến " + strDenNgay;
                        break;
                }
                switch (_strDenNgayRutGon)
                {
                    case "4":
                        _strThongTin += " đến ngày " + strDenNgay;
                        break;
                    case "0":
                        _strThongTin += " đến sáng " + strDenNgay;// + " đến " + strDenNgay;
                        break;
                    case "1":
                        _strThongTin += " đến chiều " + strDenNgay;// + " đến " + strDenNgay;
                        break;
                }
            }
            return _strThongTin;
        }

        protected void dgvPhepDaXin_PageIndexChange(object sender, GridViewPageEventArgs e)
        {
            dgvDSPhepDaXin.PageIndex = e.NewPageIndex;
            this.bindPersonalGridView(_MaNV, _ttd); ;
        }
    }
}